package com.cfl.zuul;

import javax.servlet.http.HttpServletRequest;

import com.netflix.zuul.ZuulFilter;
import com.netflix.zuul.context.RequestContext;

public class TicketZuulFilter extends ZuulFilter{

	public Object run() {
		
		RequestContext ctx = RequestContext.getCurrentContext();  
        HttpServletRequest request = ctx.getRequest();  

        System.out.println(String.format("过滤器：%s %s", request.getMethod(), request.getRequestURL().toString()));  
  
//        String username = request.getParameter("password");  
//        if(null != username && username.equals("123456")) { 
//        		// 通过
//            ctx.setSendZuulResponse(true);  
//            ctx.setResponseStatusCode(200);  
//            ctx.set("isSuccess", true);  
//            return null;  
//        }else{  
//        		// 不通过
//            ctx.setSendZuulResponse(false);  
//            ctx.setResponseStatusCode(401);  
//            ctx.setResponseBody("{\"result\":\"password is not correct!\"}");  
//            ctx.set("isSuccess", false);  
//            return null;  
//        }          
		return null;
	}

	public boolean shouldFilter() {
		// 是否执行该过滤器，此处为true，说明需要过滤 
		return true;
	}

	@Override
	public int filterOrder() {
		// 优先级为0，数字越大，优先级越低 
		return 0;
	}

	@Override
	public String filterType() {
		// pre：可以在请求被路由之前调用
		// route：在路由请求时候被调用
		// post：在route和error过滤器之后被调用
		// error：处理请求时发生错误时被调用
		return "pre";
	}

}
